Low complexity algorithms for speech and audio coding are a very relevant asset for mobile terminal based communications. Due to low storage and low complexity, while preserving coding efficiency, structured codebooks are preferred, e.g. for quantization, in several state of the art speech and audio codecs like Adaptive Multi Rate-WideBand (AMR-WB) or G.EV-VBR, which is currently under standardization in ITU-T SG16/Q9.
The codebooks used within the quantization methods of the speech and audio codecs may for instance be based on lattice structures, as described in reference “Low-complexity multi-rate lattice vector quantization with application to wideband TCX speech coding at 32 kbit/s” by S. Ragot, B. Bessette and R. Lefebvre, Proceedings of the IEEE International Conference on Acoustics, Speech, and Signal Processing, 2004 (ICASSP '04), Montreal, Canada, May 17-21, 2004, vol. 1, page 501-504, which is incorporated herein in its entirety by reference. This reference also describes the quantization process in more detail.
When lattice structures are used as codebooks, algorithms for indexing the lattice points are required.
It is possible to define a lattice codebook as a union of leader classes, each of which is characterized by a leader vector. A leader vector is an n-dimensional vector, whose components are ordered (e.g. decreasingly). The leader class corresponding to the leader vector then consists of the leader vector and all vectors obtained through all the signed permutations of the leader vector (with some possible restrictions).
An algorithm for indexing points of a lattice that is defined as a union of leader classes may for instance be of the type indexing on leaders. In this context, inter alia lexicographical and binomial algorithms can be applied, as described in reference “Robust indexing of lattices and permutation codes over binary symmetric channels” by A. Vasilache and I. Tabus, In Signal Processing vol. 83, no. 7, pp. 1467-1486, 2003, which is incorporated herein in its entirety by reference.
Binomial algorithms are generally less complex because they consider several vector components at a time.